package leetcode.editor.cn;

/**
 * @Author: Dempsey
 * @Data: 2021-03-15 18:41:16
 */

//中心对称数是指一个数字在旋转了 180 度之后看起来依旧相同的数字（或者上下颠倒地看）。 
//
// 请写一个函数来判断该数字是否是中心对称数，其输入将会以一个字符串的形式来表达数字。 
//
// 
//
// 示例 1: 
//
// 输入: num = "69"
//输出: true
// 
//
// 示例 2: 
//
// 输入: num = "88"
//输出: true 
//
// 示例 3: 
//
// 输入: num = "962"
//输出: false 
//
// 示例 4： 
//
// 输入：num = "1"
//输出：true
// 
// Related Topics 哈希表 数学 
// 👍 26 👎 0


public class P246 {
    public static void main(String[] args) {
        Solution solution = new P246().new Solution();
    }

    //leetcode submit region begin(Prohibit modification and deletion)
    class Solution {
        public boolean isStrobogrammatic(String num) {
            int len = num.length();
            char[] chars = num.toCharArray();

            for (int i = 0; i < len + 1 / 2; i++) {
                if (chars[i] == '0' || chars[i] == '1' || chars[i] == '8') {
                    if (chars[i] != chars[len - 1 - i]) return false;
                } else if (chars[i] == '6') {
                    if (chars[len - i - 1] != '9') return false;
                } else if (chars[i] == '9') {
                    if (chars[len - i - 1] != '6') return false;
                } else {
                    return false;
                }
            }

            return true;
        }
    }
//leetcode submit region end(Prohibit modification and deletion)

}